#pragma once

#include "Behaviour.h"
#include "State.h"

namespace game_engine { namespace library
{

/*!
 * \class AudioControlState
 * \brief 
 */
class AudioControlState : public game_engine::components::State
{
///////////////////////////////////////////////////////////////////////////////
// Attribute definition
///////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////
// Method definition
///////////////////////////////////////////////////////////////////////////////
public:
    // Constructors and Destructors
    AudioControlState(void);
    AudioControlState(game_engine::components::Behaviour *parent);
    virtual ~AudioControlState(void);

    // Others
    void onLoop(const FLOAT32 time) throw(...);

};

/*!
 * \class AudioControl
 * \brief 
 */
class AudioControl : public game_engine::components::Behaviour
{
///////////////////////////////////////////////////////////////////////////////
// Attribute definition
///////////////////////////////////////////////////////////////////////////////
private:
    AudioControlState *state;

///////////////////////////////////////////////////////////////////////////////
// Method definition
///////////////////////////////////////////////////////////////////////////////
public:
    // Constructors and Destructors
    AudioControl(void);
    AudioControl(GameObject *obj);
    virtual ~AudioControl(void);

    // Others
    void initialize(void) throw(...);

};

}}
